package tchk.xyz.lingyuntutorminiprogram.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import tchk.xyz.lingyuntutorminiprogram.dto.LoginDTO;
import tchk.xyz.lingyuntutorminiprogram.dto.UserDTO;
import tchk.xyz.lingyuntutorminiprogram.dto.WxLoginResponseDTO;
import tchk.xyz.lingyuntutorminiprogram.entity.SysUser;

/**
 * <p>
 * 系统统一用户表 服务类
 * </p>
 *
 * @author YourName
 * @since 2025-10-21
 */
public interface IUserService extends IService<SysUser> {
    /**
     * 根据 openid 获取用户信息，主要用于微信小程序登录场景。
     */
    SysUser getOneByOpenid(String openid);


    /**
     * 后台管理员登录
     *
     * @param loginDTO 登录数据传输对象
     * @return JWT令牌
     */
    String adminLogin(LoginDTO loginDTO);

    Long countTodayNewUsers();

    /**
     * 分页查询用户列表（包含角色信息）
     */
    IPage<UserDTO> getUserList(IPage<UserDTO> page, String nickname);

    /**
     * 更新用户及其角色
     */
    void updateUserWithRoles(UserDTO userDTO);

    //【新增】微信小程序登录
    WxLoginResponseDTO wxLogin(String code);

    WxLoginResponseDTO selectRole(String username, String roleCode);
}